The virtualization technique is of importance in the field of the server. More specifically, one physical machine can be operated as multiple virtual machines (VMs) through a virtualization technique which uses virtualization software such as VMware and Xen (which are both registered trademarks). This enables efficient server operations.
The virtualization technique also provides a virtual switch in a physical server, in addition to virtual machines. The virtual switch is a software-based packet switch and relays communications among virtual machines and between the virtual machines and external entities, as shown in FIGS. 1A and 1B. The traffic control of the virtual switch is easily achieved, since the virtual switch is provided adjacent to the virtual machines. In addition, the virtual switch is superior in the flexibility and extensibility since the virtual switch is based on software.
Also known in the art is the I/O (input/output) virtualization technique, such as VT-d/Vt-c (registered trademark). The I/O virtualization technique allows direct data exchanges between virtual machines and network interface cards (NIC) without using a virtual switch. More specifically, as shown in FIG. 2, a virtual NIC is provided for each virtual machine. The use of these virtual NIC enables completely bypassing the virtual switch. Such processing is referred to as “NIC-offloading”, hereinafter.
The following are known as techniques related to virtualization:
An apparatus disclosed in Japanese translation of PCT application No. P2007-522583A (patent literature 1) includes at least one router and a data structure. The data structure is used by the router(s) for forming a virtual network by organizing connections among virtual network interface cards (VNIC).
Japanese Patent Application Publication No. P2008-102929A (patent literature 2) discloses a technique for achieving communications with a network adapter by using a queue data structure. A device driver recalls a device driver service for initially setting entries of an address-transformation-and-protection table (ATPT) in a route complex related to the queue data structure. The device driver service returns a non-transformed address and the non-transformed address is then supplied to a network adapter. In response to a queue element being retrieved from the queue data structure, the network adapter issues a request for transforming the non-transformed address specified by the queue element; this enables storing a transformed address in the network adapter before receiving a data packet which is destined for a buffer related to the queue element.
Japanese Patent Application No. P2009-151745A (patent literature 3) discloses a virtual machine monitor which operates virtual servers on a multi-processor system. The virtual machine monitor includes a physical hardware information acquisition section, a reception section and an assignment processing section. The physical hardware information acquisition section acquires hardware configuration information including physical location information of hardware of the multiprocessor system, including processors, memories, I/O devices and a network. The reception section receives a generation request which indicates the number of processors, the memory amount and the assignment policy of I/O devices and resources of virtual servers to be generated. The assignment processing section assigns the I/O devices to the virtual servers on the basis of the received generation request and then assigns the processors and the memories to the virtual servers so as to satisfy the assignment policy.
For the cases of FIGS. 1A and 1B, the virtual switch relays the entire traffic between the virtual machines and external entities. This implies that the traffic is concentrated on the virtual switch. In addition, the virtual switch, which operates based on software, may proceed with the switch processing with a single thread in some cases. In this case, the virtual switch may be unable to accommodate the concentrated traffic. Therefore, the virtual switch tends to become a bottleneck in network processing.
The use of the NIC-offloading shown in FIG. 2, on the other hand, enables completely bypassing the virtual switch. In this case, however, the packet communication route is fixed, resulting in that the advantage of the flexible traffic control based on the virtual switch is discarded.
Shuichi Karino, “A Proposal of Dynamic Offloading of vswitch Tasks”, proceeding of general meeting of the Institute of Electronics, Information and Communication Engineers, page B-6-45, 2010 (non-patent document 1) discloses that the use and non-use of the NIC-offloading is dynamically controlled for each flow. This enables suppressing the concentration of the traffic on the virtual switch, while providing the advantage of the flexible traffic control based on the virtual switch.